CentOS6でcurlを実行すると「curl: (35) SSL connect error」と出ます。
テクニカルサポートの丸屋 正志(まるちゃん)です。
困っていた内容
AWS Marketplace 【CentOS 6 (x86_64) - with Updates】 を用いた EC2 インスタンスに 【AWS CLI 2】 を入れようとすると、下記のようなエラーが出てインストール出来ませんでした。 どのようにすれば、CentOS6 に 【AWS CLI 2】 をインストールすることができますでしょうか?
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 7 0 7 0 0 26 0 --:--:-- --:--:-- --:--:-- 0 curl: (35) SSL connect error
更には、yum -y update
をしようしたけどもアップデートが下記の様に失敗してしまう。
【CentOS6】 のサポートが 2020-11-30 に終了致したため、yum -y update
を実行すると失敗してしまいます。
$ sudo yum -y update Loaded plugins: fastestmirror, presto YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/ removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
原因
古めの CentOS6.x では、curl で SSL サイトに接続をする際は、古い規格の TLS1.2 での接続方式や、SSLv3 が繋ぎにいこうとしてエラーになります。
どう対応すればいいの?
ここでは、一般ユーザーで実行していますが、ご利用の環境に合わせてコマンドの実行をしてください。
1, CentOS-Base.repo ファイルの中身の置換
$ sudo sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\/mirrorlist.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo $ sudo sed -i -e "s/^#baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo
2, curl と nss のアップデート
$ sudo yum -y update curl nss
3, unzip のインストール
$ sudo yum -y install unzip
4, AWS CLI2 のインストール
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip" $ unzip awscliv2.zip $ sudo ./aws/install